package com.unisal.java;

public class ControleRemotoComVoltar {

	Comando[] comandosLigado;
	Comando[] comandosDesligado;

	Comando comandoVoltar;

	public ControleRemotoComVoltar() {
		comandosLigado = new Comando[7];
		comandosDesligado = new Comando[7];

		Comando semComando = new SemComando();
		for (Integer indice = 0; indice < 7; indice++) {
			comandosLigado[indice] = semComando;
			comandosDesligado[indice] = semComando;
		}
		comandoVoltar = semComando;
	}
	
	public void setComando(Integer slot, Comando comandoLigado, Comando comandoDesligado){
		comandosLigado[slot] = comandoLigado;
		comandosDesligado[slot] = comandoDesligado;
	}
	
	public void botaoLigarFoiPressionado(Integer slot){
		comandosLigado[slot].execute();
		comandoVoltar = comandosLigado[slot];
	}
	
	public void botaoDesligarFoiPressionado(Integer slot){
		comandosDesligado[slot].execute();
		comandoVoltar = comandosDesligado[slot];
	}
	
	public void botaoVoltarFoiPressionado(){
		comandoVoltar.voltar();
	}
	
	@Override
	public String toString() {
		StringBuffer stringBuff = new StringBuffer();
		stringBuff.append("\n---- Controle Remoto ----\n");
		for ( Integer indice = 0; indice < comandosLigado.length; indice++){
			stringBuff.append("[slot " + indice + "]" + comandosLigado[indice].getClass().getName() +
					"\t  " + comandosDesligado[indice].getClass().getName() + "\n");
		}
		return stringBuff.toString();
	}
}
